package com.mercury.ec.module.air.dal.dataobject.demandorder;

import lombok.*;

import java.time.LocalDateTime;

import com.baomidou.mybatisplus.annotation.*;
import com.mercury.ec.framework.mybatis.core.dataobject.BaseDO;

/**
 * 机票需求订单 DO
 *
 * @author hesx
 */
@TableName("air_demand_order")
@KeySequence("air_demand_order_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class AirDemandOrderDO extends BaseDO {

    /**
     * id
     */
    @TableId
    private Long id;
    /**
     * 需求单号
     */
    private String no;
    /**
     * 客户id 见表（basic_customer.id）
     */
    private Long customerId;
    /**
     * 客户编号
     */
    private String customerNo;
    /**
     * 客户名称
     */
    private String customerName;
    /**
     * 申请人id 见表（system_users.id）
     */
    private Long applyUserId;
    /**
     * 航程信息
     */
    private String flightInfo;
    /**
     * 预订员id 见表（system_users.id）
     */
    private Long bookUserId;
    /**
     * 预订部门id 见表（system_dept.id）
     */
    private Long bookDeptId;
    /**
     * 预订时间
     */
    private LocalDateTime bookTime;
    /**
     * 是否锁单
     *
     * 枚举 {@link TODO infra_boolean_string 对应的类}
     */
    private Boolean locked;
    /**
     * 锁单员id 见表（system_users.id）
     */
    private Long lockUserId;
    /**
     * 锁单部门id 见表（system_dept.id）
     */
    private Long lockDeptId;
    /**
     * 锁单时间
     */
    private LocalDateTime lockTime;
    /**
     * 最后报价操作员id 见表（system_users.id）
     */
    private Long finallyQuoteUserId;
    /**
     * 最后报价部门id 见表（system_dept.id）
     */
    private Long finallyQuoteDeptId;
    /**
     * 最后报价时间
     */
    private LocalDateTime finallyQuoteTime;
    /**
     * 最后核价操作员id 见表（system_users.id）
     */
    private Long finallyPricingUserId;
    /**
     * 最后核价部门id 见表（system_dept.id）
     */
    private Long finallyPricingDeptId;
    /**
     * 最后核价时间
     */
    private LocalDateTime finallyPricingTime;
    /**
     * 取消规则id 见表（train_cancel_rule.id）
     */
    private Long cancelRuleId;
    /**
     * 取消操作员id 见表（system_users.id）
     */
    private Long cancelUserId;
    /**
     * 取消部门id 见表（system_dept.id）
     */
    private Long cancelDeptId;
    /**
     * 取消时间
     */
    private LocalDateTime cancelTime;
    /**
     * 取消原因
     */
    private String cancelCause;
    /**
     * 联系人
     */
    private String contact;
    /**
     * 联系人电话
     */
    private String contactPhone;
    /**
     * 状态 字典（air_demand_order_status）
     *
     * 枚举 {@link TODO air_demand_order_status 对应的类}
     */
    private Integer status;
    /**
     * 备注
     */
    private String remark;

}
